/**
 * Copyright 2002 Cordys R&D B.V. 
 * 
 * This file is part of the Cordys .NET Connector. 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 /********************************************************************
			Declaration of Document Class
********************************************************************/
#include "Managed.h"

namespace com
{
  namespace eibus
	{
	namespace xml
		{
		namespace nom
			{		

				public __gc class Document
					{

					private: __value int doc_handler ;	
					
					public:
						
						/*********************
						    Constructor(s)
						*********************/
						Document();
						Document(Int32 doc_handle);	

						/*********************
						    Destructor
						*********************/
						~Document();

						/**********************
						 Function Declaratios
						**********************/
						Int32 GetHandle();
						Int32 Load(Byte bytes[] ,Int32 length);
						Int32 Load(Byte bytes[]);
						Int32 Load(String*  fileName);
						Int32 ParseString(String* xml);
						//Int32 ParseString(String* xml, String* encoding);
						Int32 CreateElement(String* elementName, Int32 parentElement);
						Int32 CreateElementWithParentNS(String* elementName, Int32 parentElement);	// New for BP
						Int32 CreateElement(String* elementName);
						Int32 CreateText(String* textStr,Int32 parentElement);
						Int32 CreateText(String* textStr);
						Int32 CreateTextElement(String* element , String* textStr , Int32 parentElement);
						Int32 CreateTextElementWithParentNS(String* element , String* textStr , Int32 parentElement); // New for BP
						Int32 CreateTextElement(String* element , String* textStr);
						void LockDocument();
						void UnLockDocument();

					};//End of Document Class
			}//End of nom namespace
		}//End of xml namespace		
	}//End of eibus namespace
}//End of com namespace